package net.worldscale.xp.wspr.impl;

import net.worldscale.xp.wspr.ConfigManager;
import net.worldscale.xp.wspr.Console;
import net.worldscale.xp.wspr.ModuleManager;
import net.worldscale.xp.wspr.StringResourceManager;
import net.worldscale.xp.wspr.WSPR;
import net.worldscale.xp.wspr.ThreadManager;

class ImplWSPR extends WSPR {

    public ImplWSPR() {
        mModuleManager = new ImplModuleManager();
        mThreadManager = new ImplWsThreadAgent();
        mConfigManager = new ImplConfigManager();
        mConsole = new ImplConsole();
        mStrResManager = new ImplStrResManager();
    }
    private final ModuleManager mModuleManager;
    private final ThreadManager mThreadManager;
    private final ConfigManager mConfigManager;
    private final StringResourceManager mStrResManager;
    private final ImplConsole mConsole;

    public void init() {
        mConsole.init();
    }

    @Override
    public ModuleManager getModuleManager() {
        return mModuleManager;
    }

    @Override
    public Console getConsole() {
        return mConsole;
    }

    @Override
    public ConfigManager getConfigManager() {
        return mConfigManager;
    }

    @Override
    public StringResourceManager getStringResource() {
        return mStrResManager;
    }

    @Override
    public ThreadManager getThreadManager() {
        return mThreadManager;
    }
}
